/*
*读取指定任意文件，然后从该文件中查找单词,查询的结果是该单词出现的次数,并列出每次出现所在的行。
*如果单词在同一行中多次出现，程序将只显示该行一次。
*行号按升序显示，即第七行应该在第九行之前输出
*/
#include <iostream>
#include <string>
#include <fstream>
#include <map>
#include <set>
#include <vector>


int main()
{
	std::string fileName = "E:\\10_32.txt";
	std::ifstream infile(fileName.c_str());
	
	std::string search_item;
	std::cout << "请输入要查询的单词：";
	std::cin >> search_item;

	std::map<int,std::string> wordMap;
	std::string strVal;
	int line_no = 0;
	while(std::getline(infile,strVal))
	{	
		++line_no;
		wordMap.insert(make_pair(line_no,strVal));
	}

	std::map<int,std::string>::const_iterator iter = wordMap.begin();
	int counter = 0;
	while(iter != wordMap.end())
	{
		if(iter->second.find(search_item) < iter->second.length())
		{
			std::cout << "(line "  << iter->first << ")  " << iter->second << std::endl;
			++counter;
		}
		iter++;
	}
	
	std::cout << search_item << " 在文件中共出现 " << counter << "次！" << std::endl;
	system("pause");
	return 0;
}